<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <!-- <div class="yuan">

    </div>
    <div class="yuaner">
        #content
        <div class="xiaoyuan">
#inner

        </div>
    </div> -->



</body>

</html>


<script>
    // for(var i=1;i<=5;i++){
    //     (function(i){
    //         setTimeout(function timer(){
    // console.log(i);
    //         },1*1000)
    //     })(i)
    // }
    // console.log(i)
    //输出结果 6 1 2 3 4 5



    // var obj1={a:1,b:2,c:3,d:{e:4}}
    // var obj2={...obj1}
    // obj1.a=2;
    // obj1.d.e=5;
    // console.log(obj2)
    //输出结果 1 2 3 {e:4}


    // setTimeout(function(){
    //     console.log(1);
    // },0)

    // new Promise((resolve, reject) => {
    //     console.log(2)
    //     resolve()
    //     console.log(3);
    // }).then(function(){
    //     console.log(4);
    // })
    //输出结果 2 3 4 1

    // const arr=[12,24,37,24,49,49,55,68]
    // const arr2=[...new Set(arr)]
    // console.log(arr2)


    // 面试题
    // 1、80名
    // 2、2次用7g砝码称70g 用1次2g砝码称20g给另一部分
    // 专业题
    // var arr=[1,2,3]
    // console.log(typeof(arr));
    // object

    // var arr=true
    // console.log(typeof(arr));
    //boolean

    // var arr={name:'范圆'}
    // console.log(typeof(arr));
    // object

    // var arr=null
    // console.log(typeof(arr));
    // object

    // var arr=undefined
    // console.log(typeof(arr));
    // undefined

    // var arr='范范'
    // console.log(typeof(arr));
    // string

    // split join
    // var arr=[1,2,3]
    // console.log(arr.join('love'))

    // var text = "How are you doing today?";
    // var myArray = text.split(",");
    // console.log(myArray);

    // 事件委托又称为事件代理. 下面我将简述一下:
    // 事件委托: 给父元素注册事件,委托给子元素来处理
    // 事件委托的原理: 事件冒泡
    // 事件委托注意点:
    // 不能使用this: this指向父元素
    // 需要使用e.target : 真正点击的子元素(事件触发源)
    // 事件委托的应用 : 给动态新增元素注册事件
    // 举个实例: 给表格中动态新增的tr注册删除点击事件(经典应用)

    // 总结一下事件委托的优点:
    // 1.提高性能:每一个函数都会占用内存空间，只需添加一个事件处理程序代理所有事件,所占用的内存空间更少。
    // 2.动态监听:使用事件委托可以自动绑定动态添加的元素,即新增的节点不需要主动添加也可以一样具有和其他元素一样的事件。

    // js：
    // appendChild()
    // //添加

    // removeChild()
    // //删除节点

    // insertBefore（插入节点，被插节点）
    // //插入（前插后）

    // replaceChild（新节点,旧节点）
    // //替换（前替换后）

    // jq：
    // append() （旧节点添加新节点后面）
    // appendTo() （新节点添加到旧节点后面）
    // prepend() （旧节点添加新节点的前面）
    // prependTo() （新节点添加到旧节点的前面）
    // //添加

    // remove()
    // （//清空：） empty()
    // //删除

    // after() ______// 旧节点后面插入 新节点
    // before() ______ //旧节点前面插入 新节点
    // insertAfter() ________//新节点插到旧节点后
    // insertBefore() _________//新节点插到旧节点前
    // //插入

    // replaceWith()
    // //替换

    // var inputs = document.getElementsByTagName("input");//获取所有的input标签对象
    // var checkboxArray = [];//初始化空数组，用来存放checkbox对象。
    // for(var i=0;i<inputs.length;i++){
    //   var obj = inputs[i];
    //   if(obj.type=='checkbox'){
    //      checkboxArray.push(obj);
    //   }
    // }

    // var foo='11' + 2 - '1';
    // console.log(foo)  //111
    // console.log(typeof foo); //number

    // 因为

    // var foo='get-element-by-id'
    // function render(str){
    //    var foo2=foo.split('-') 
    //    console.log(foo2) 
    //    for(var i=1;i<foo2.length;i++){
    //     foo2[i]=foo2[i].charAt(0).toLocaleUpperCase()+foo2[i].substr(1,foo2[i].length-1)
    //    }
    //    foo2=foo2.join('')
    //    return foo2
    // }
    // console.log(render(foo))

    // splice有三个参数 splice（index ，len，【item】）
    // var arr = [1, 2, 3, 4]
    // console.log(arr.splice(0,3));
    // console.log(arr.splice(1,2,1,4));
    // console.log(arr.splice(0,2,3))

    // function arr1(arr) {
    //     if (!Array.isArray(arr)) {
    //         console.log('type error!')
    //         return;
    //     }
    //     arr = arr.sort()
    //     var arrry = [arr[0]];
    //     for (var i = 1; i < arr.length; i++) {
    //         if (arr[i] !== arr[i - 1]) {
    //             arrry.push(arr[i]);
    //         }
    //     }
    //     return arrry;
    // }
    // var arr = [1, 2, 2, 3];
    // console.log(arr1(arr));

function parseQueryString(url){
    var str = url.split('?')[1];
    var iterms=str.split('&')
    var arr,json={}
    for(i in iterms){
        arr=iterms[i].split("=");
        Json[arr[0]]=arr[1];
    }
    return Json;
}
var URL='https://www.taobao.com/'
 var obj=parseQueryString(URL)
 console.log(obj);

</script>

<style>
    /* .yuan {
        width: 200px;
        height: 200px;
        background-color: pink;
        border-radius: 50%;
    } */
    /* .yuaner{
        width: 400px;
        height: 400px;
        background-color: skyblue;
        text-align: center;
        
      
    }
    .xiaoyuan{
            width:200px;
            height:200px;
            background-color:pink;
            margin-left:100px;
            margin-top: 70px;
            line-height: 200px;
        } */
</style>